package daily.aug0818;

import java.io.File;
import java.io.FileFilter;

public class FileFilterTest {
    public static void main(String[] args) {
        File file = new File("D:\\Download\\Windows\\Theme");
        printSpecificName(file);
    }

    private static void printSpecificName(File dir) {
        //创建FileFilter的实现类对象(匿名内部类)
        FileFilter filter = new FileFilter() {
            @Override
            public boolean accept(File pathname) {
                //传递的对象是一个目录则返回true继续遍历，是一个.png的文件也返回true
                return pathname.isDirectory() || pathname.getName().toLowerCase().endsWith(".png");
            }
        };
        File[] filesList = dir.listFiles(filter);

        //Lambda优化
        //File[] filesList = dir.listFiles(pathname -> pathname.isDirectory() || pathname.getName().toLowerCase().endsWith(".png"));

        //遍历filesList
        for (File f : filesList) {
            //如果此时遍历到的f是目录，则递归调用printSpecificName方法，遍历子目录
            if (f.isDirectory()) {
                printSpecificName(f);
            } else {
                System.out.println(f);//遍历到的是文件则打印出来
            }
        }
    }
}
